Exploring the Possibilities of Articulated Physics, Part 2

We have a vision for ROBLOX where builders can create complex mechatronic constructs and simulate them in real time with other players. To that end, we’ve been working on implementing a new articulated physics engine, which will ultimately offer greater fidelity and more robust support for joints, motors and multiple articulated bodies. This has been a long and challenging process, but the videos below illustrate the progress we’ve made so far (and since our first article in this series).

Continue reading
     
 

Synchronizing Physics and Rendering at a Smooth 60 FPS

ROBLOX Battle June 2013The ROBLOX game engine interweaves multiple jobs to create an accurate on-screen representation of your multiplayer, physically simulated games. The primary jobs are physics, rendering, networking and Lua scripts, and each job is updated at a frequency that balances performance and fidelity. We are working on rolling out an optimization to those update frequencies – particularly in relation to the physics and rendering jobs – to boost ROBLOX’s max framerate to 60 at almost no cost to performance.

In an ideal world, each of the primary jobs would be updated at exactly the same frequency (let’s say 120Hz), your computer and network would be able to manage the load, and the framerate would stay locked at 120. However, in an online game as complex and variable as ROBLOX, that’s a dream. Instead, we have to optimize the frequency at which each job provides new data for the best possible experience. This is what we’ve done to increase ROBLOX’s framerate to 60: optimize the frequency and distribution of physics updates, and ultimately synchronize the physics frequency with the render frequency.

Continue reading
     
 

Exploring the Possibilities of Articulated Physics in ROBLOX

We’ve been working on testing and implementing a new articulated physics engine, which will offer more robust support for joints and motors, and more accuracy. We have a vision for ROBLOX where builders have the freedom to create the most complex mechatronic creations they can imagine, and simulate them in real time with other players. This has been a long and challenging process, but the video below illustrates the progress we’ve made so far.

Continue reading
     
 

Removing “Tool Lag” from ROBLOX’s First-Person Camera

ROBLOX Battle Slingshot ScreenshotWe’re constantly striving to perfect the feel of building and playing in ROBLOX. To that end, we recently addressed “tool lag” — a delay seen from the first-person perspective between the view of the camera and the tool or weapon in the player’s hand. While this may seem like a minor enhancement, it goes a long way in improving the quality of the first-person ROBLOX experience. This article serves as not just an introduction to the improvement, but a documented timeline of testing and eventually implementing it.

Continue reading
     
 

Removing “Tool Lag” from ROBLOX’s First-Person Camera

ROBLOX Battle Slingshot ScreenshotWe’re constantly striving to perfect the feel of building and playing in ROBLOX. To that end, we recently addressed “tool lag” — a delay seen from the first-person perspective between the view of the camera and the tool or weapon in the player’s hand. While this may seem like a minor enhancement, it goes a long way in improving the quality of the first-person ROBLOX experience. This article serves as not just an introduction to the improvement, but a documented timeline of testing and eventually implementing it.

Continue reading
     
 

Physics Performance Demo: Domino Stress Test

As you may recall, we recently published an in-depth article about how we’ve sped up ROBLOX’s physics by 2-4x as a result of modeling collisions using impulses rather than springs. The “impulse solver,” together with three recent bug fixes, has drastically improved the performance and realism of one of our favorite physics-engine stress tests: Ultimate Dominoes! by armitroner. In this test, a single force cascades through thousands of standing parts, causing them to topple in quick succession.

Continue reading
     
 

Impulse Solver Gives ROBLOX’s Physics a Serious Speed Boost

Big CrashIn late 2012, a significant fraction of ROBLOX developers worked together to make games run on performance-constrained hardware (iPad, iPhone and iPod touch, to be exact). The team set off on an exhaustive hunt for inefficient processes within the ROBLOX source code, then found ways to optimize the problem areas that had substantial performance payoffs. This allowed us to bring the full in-game multiplayer ROBLOX experience to mobile devices in December, but we did have to make a concession: there would not be a destructible environment in ROBLOX Battle. The physics simulation was too resource intensive.

Soon, that’s going to change, as Kevin He has altered the way ROBLOX handles collisions – one of the major components of our distributed physics engine. Better yet, you’re about to see a 2-4x increase in physics performance across all games and hardware.

Continue reading